For some image forming apparatuses such as copying machines, printers and digital complex machines, there are prepared optional apparatuses to be optionally attached, such as a finisher having functions of paper sorting, stapling and the like and an original paper feeder. Some of these optional apparatuses have a CPU-mounted control substrate and cause the CPU to execute a program recorded on a memory included in the CPU or a memory mounted on the control substrate in order to control cooperation with the body of the image forming apparatus, operations and the like. If an error is found in the control program for the optional apparatus, the program error must be modified. Furthermore, update of the control program may be required for function enhancement. As a program modification method to be used in such cases, the following two have been commonly employed:    (1) To exchange a recording medium such as ROM on which the program is recorded; and    (2) To use a rewritable, non-volatile medium as the medium for recording a control program for an optional apparatus and rewrite a program recorded on the medium.
As a method (2), there is also proposed a method of sending a program via communication to perform version upgrade of a program stored in a flash memory (Japanese Patent Laid-Open No. 9-97221).
When these two methods are compared, the method (2) which utilizes communication is more advantageous in that stop time of the apparatus is shorter and remote maintenance can be realized. Therefore, actually, the method (2) is used more frequently.
However, the method (2) of rewriting a control program included in an apparatus has the following problems:
Problem 1: In the case where a user rewrites the entire program, there is a possibility that the program rewriting will result in a failure due to operational mistakes made by the user or due to power-off during rewriting. The failure in program rewriting may cause inoperability of the optional apparatus.
Problem 2: In the case of performing version upgrade of a program via communication, if a communication error occurs and causes loss of a part of the program or data, it may result in a failure in rewriting of the program (version upgrade) and inoperability of the optional apparatus.